/*
 * 文件名称: ResponseData.java
 * 版权信息: Copyright 2005-2012 SKY-MOBI Inc. All right reserved.
 * ----------------------------------------------------------------------------------------------
 * 修改历史:
 * ----------------------------------------------------------------------------------------------
 * 修改原因: 新增
 * 修改人员: allen.hu
 * 修改日期: 2012-8-24
 * 修改内容: 
 */
package org.bigmouth.framework.core;

import org.bigmouth.framework.util.json.JSONException;
import org.bigmouth.framework.util.json.JSONObject;

/**
 * 响应对象。
 * 
 * @author allen.hu / 2012-8-24
 * @since Bigmouth-Framework 1.0
 */
public class ResponseData {

    public final static int SUCCEED = 0;

    public final static int FAILED = -1;

    /**
     * 获得一个返回标准格式的JSON对象。
     * 
     * @param statusCode 返回状态码
     * @param message 返回消息
     * @return
     * @throws JSONException
     * @author allen.hu / 2012-8-24 
     * @since Bigmouth-Framework 1.0
     */
    public static JSONObject getResult(int statusCode, String message) throws JSONException {
        JSONObject result = new JSONObject();
        result.put("Flag", statusCode);
        result.put("Message", message);
        return result;
    }
    
    /**
     * 返回一个标准格式的JSON对象。
     * 
     * @param statusCode 返回状态码
     * @param message 返回消息
     * @param object Data 数据体对象
     * @return
     * @throws JSONException
     * @author allen.hu / 2012-8-24 
     * @since Bigmouth-Framework 1.0
     */
    public static JSONObject getResult(int statusCode, String message, Object object) throws JSONException {
        JSONObject result = getResult(statusCode, message);
        result.put("Data", object);
        return result;
    }
    
    /**
     * 根据指定json字符串生成一个JSONObject并返回
     * @param json
     * @return
     * @throws JSONException
     * @author Allen / 2012-9-14 
     */
    public static JSONObject fromString(String json) throws JSONException {
        JSONObject result = new JSONObject(json);
        return result;
    }
    
    /**
     * 返回结果是否成功，参数JSON必须是标准的ResponseData结构
     * @param rs
     * @return true 成功|false 失败
     * @throws JSONException
     * @author Allen / 2012-9-14 
     */
    public static boolean flag(JSONObject rs) throws JSONException {
        if (null == rs)
            return false;
        return (SUCCEED == rs.getInt("Flag")) ? true : false;
    }
    
    /**
     * 返回结果内容，参数JSON必须是标准的ResponseData结构
     * @param rs
     * @return
     * @throws JSONException
     * @author Allen / 2012-9-14 
     */
    public static String getMessage(JSONObject rs) throws JSONException {
        if (null == rs) 
            return null;
        return rs.getString("Message");
    }

}
